1. Field of the Invention
The invention relates to a computer system with a digitizer and more specifically to the transmission of data and generation of interrupts from a digitizer to a computer system.
2. Description of the Related Art
Pen-based computing is a rapidly developing area in the field of personal computer systems. These systems provide pen input by allowing the user to directly write on the displayed screen of a typically notepad size, or smaller system.
A digitizer of some sort detects the position of the pen and then provides that data to the system. Such a digitizer can operate based on a variety of principles, including capacitive, mechanical, or electromagnetic. Whatever its principle of operation, the digitizer, through its controller circuitry, sends out a stream of data in various formats and in various modes, such as incremental mode, absolute mode, and pen-down tracking mode. These data packets tend to be rather large, as the system must know pen location with a high degree of precision. Further, the data must be passed very quickly to track all of the points a pen passes through as a user writes at even normal speed. Typically, the data packets will range from 4 to 10 bytes in length, and must be passed around 100 times per second.
These high data rates and large packet sizes can create problems, such as the dropping out of data packets because the system processor may not have time to process each packet before the next packet becomes available. It would be desirable to prevent such dropouts.
Further, the digitizer data packet must generally be broken up into smaller data elements, as the processor I/O data size is typically only 8 bits when communicating with a digitizer. Thus, when a digitizer is providing 100 data packets per second and each data packet is five bytes in size, for example, this would involve an effective communications rate of 5,000 data bytes per second. Typical digitizer communications hardware interrupts the processor each time another data byte of a digitizer data packet is available. This would translate to 5,000 interrupts per second, and would greatly burden the system in handling these digitizer data packets. Thus, it would be desirable to relieve a microprocessor of some of the overhead of handling these large digitizer data packets at these high data rates.